﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Bettzueche.RLLibrary.RLComponent;
using Bettzueche.RLLibrary.Component;
using Bettzueche.RLLibrary.Functions;

namespace RLProject1.Model.AMEEWorld
{
    class RLTask
    {
        /// <summary>
        /// Gets or sets the environment.
        /// </summary>
        /// <value>
        /// The environment.
        /// </value>
        public IEnvironment<WorldImage,AMEEAction,Double> Welt { get; set; }


        public RLTask() {
            this.Welt = new AMEEWorldDraft();
            
            //
            int anzUnebenheiten = 10;
            int anzSektoren = 8;
            float[] radien = { 1f/3f, 2f/3f, 1f };
            Tiling config = new Tiling(anzUnebenheiten, anzSektoren, radien);

            double epsilon = 0.1;
            AMEEAgent agent = new AMEEAgent(this.Welt, new QFunktion(config), new EpsilonGreedy<AMEEAction>(epsilon));
            
            //agent.DiscountFactor
            //agent.LearnRate
            //agent.Policy
            //agent.TraceDecay
            //agent.EFunction
            //agent.RunEpisode(max,finals)
        }

    }
}
